summaryrefslogtreecommitdiffstats
path: root/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js
blob: 1061d8afde4cb2fa631264c1532434e81c0589de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
 * @license
 * SPDX-License-Identifier: AGPL-3.0-or-later
 * This file is part of Wolfree.
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 */

// @ts-check

import Placeholder from "./Placeholder.js";
import Entrypoint from "./Entrypoint.js";

export default class PostProcessor {
  process = ({ input = String(), i2d = Boolean() } = {}) => {
    try {
      new Placeholder().remove();

      try {
        document
          .querySelectorAll(
            "html > body > div#__next > div > main > main > div.wolfree-pods > div > div > section > section > div > div > div > details > div"
          )
          .forEach((element = new HTMLElement()) =>
            element.setAttribute("contenteditable", "")
          );
      } catch (error) {
        console.error(
          "Fail to make the plaintext in details tags easy to copy.",
          error
        );
      }

      try {
        document
          .querySelectorAll(
            "html > body > div#__next > div > main > main > div.wolfree-pods > div > div > section > section > div:is(:first-child) > select"
          )
          .forEach((element = new HTMLSelectElement()) =>
            element.addEventListener(
              "change",
              async (event = new Event(String())) =>
                Entrypoint({
                  input,
                  i2d,
                  extraPodstates: [
                    event.target instanceof HTMLSelectElement
                      ? event.target.value
                      : (console.error({ event }), String()),
                  ],
                })
            )
          );
      } catch (error) {
        console.error(
          "Fail to set up the drop-down menu for problem-solving strategies.",
          error
        );
      }
    } catch (error) {
      console.error({ error });
    }
  };
}